1. Field of the Invention
The present invention relates to a method and system for applying rule based criteria to select a printer from a list of candidate printers and, in particular, to select a logical printer associated with a queue that routes print jobs to a printer.
2. Description of the Related Art
Network printing systems generally comprise an assemblage of different printers, client computers, servers, and other components connected over a network. A print job is assembled at a client computer and transmitted over the network to a server linked to a variety of printers. The printers may have different printing capabilities. Thus, for a given submitted print job, some printers in the network may not be able to process the print job. To route print jobs through a network printing system, International Business Machines Corporation (IBM) provides Printing Systems Manager (PSM) products that provide centralized and distributed management of a network printing system. The IBM PSM systems manage the flow of print jobs and insure that a print job is routed to a printer that can handle the job.
A print job is comprised of one or more electronically-stored files and the print attributes therefor. The print attributes inform the printer how to process the files. To assemble print jobs, previous systems include software installed on the client computer that displays a graphical user interface (GUI). Using a mouse, keyboard, etc., the user selects from a menu of options displayed in the GUI the components and print attributes for a print job. The client computer, under control of the installed software, would then create an electronically-stored job ticket based on the information entered by the user or systems operator.
Job tickets typically only define the print attributes for a single file. However, a document may be comprised of multiple files, each having one or more print attributes. A file submitted to the printer often includes printer instructions in a page description language (PDL) such as POSTSCRIPT(trademark). POSTSCRIPT is a trademark of Adobe Systems, Incorporated. The PostScript language is used by many printers and applications to provide the complex fonts, graphics, and image handling capabilities required by today""s applications. The PostScript language must be interpreted by a transform process in the printer or elsewhere in the network to produce a printed image file that is ready to be printed. Print image files are in a bit-mapped image format, also known as a raster image. A raster image processor (RIP) translates PDL files to a raster image or RIP version of the file. In the desktop publishing environment, it can take several hours to transform a large PDL print file to its RIP version.
The IBM AIX(copyright) PRINT SERVICES FACILITY(trademark)/6000 (PSF/6000) software system transforms PostScript files into an Advanced Function Presentation data stream (AFP data stream) for printing on printers attached to a machine implementing the PSF/6000 software. AIX is a registered trademark of IBM and PRINT SERVICES FACILITY is a trademark of IBM. The PSF/6000 software uses the PS2AFP transform command to transform PostScript and other file formats into an AFP data stream file without submitting it immediately to the printer. The PS2AFP command runs as a daemon, which is a program that runs unattended in the background of the operating system. Daemon processes generally provide services that must be available at all times. A daemon runs continuously, looking for work to do, performing that work, and waiting for more work.
In previous systems, including those that implement the ISO DPA 10175, POSIX 1387.4 and PSIS printing standards, such as the IBM Printer Resource Manager products, print jobs are received and queued at a single point before being routed to a logical printer or printer that can handle the print job. Such a single point queue is sometimes referred to as a xe2x80x9cspooler.xe2x80x9d Spoolers are servers that accept requests from many clients, validate job and document attributes with those of the intended print destination, provide queuing and scheduling, and then route jobs/documents to the appropriate printer. A queued print job is then transferred to a logical printer, which then routes the print job to a queue for one or more physical printers.
Current techniques for routing print jobs to logical printers are often based on the first available logical printer. Such techniques do not efficiently route print jobs to optimize throughput as factors that can effectively optimize throughput are not considered with such techniques.
To overcome the limitations in the prior art described above, preferred embodiments disclose a method and system for routing print jobs to one of a plurality of printers. After providing a print job, a set of printers capable of printing the print job is determined. The set of printers is queried to determine status information thereon. A criterion is then applied to the status information for the set of printers to determine a subset of printers. The determined subset is dependent upon the determined status information. A printer is selected from the subset and the print job is routed to the selected printer.
In further embodiments, printers are organized according to print queues, wherein each print queue routes print jobs to at least one associated printer. In such case, the print queues are processed and the criterion are applied to the queues to determine a subset of print queues. The print job is then routed to a print queue, which then routes the print job to a printer associated with the print queue.
In further embodiments a second criteria may be applied to the subset determined from the first criteria to obtain a second subset from which the print queue is selected.
In further embodiments, criteria can be encoded as rules in a rule-based system to allow for modification of the type and order of the rule criteria.
In further embodiments, the queue may contain pointers to the content of the print job or tokens representing the print job to avoid transferring the content of the print job when queuing and transferring the print job throughout the system. In this way, only the pointer or token for a print job is queued and routed through the system. The actual content of the print job is routed to the printer selected to print the job.
In still further embodiments, the first and second criteria may involve a queue depth rule and a reuse rule to optimize load balancing and minimize network traffic, respectively.
Current techniques often do not consider the load balancing of print jobs across logical printer queues and, thus, tend to over or under utilize printer resources in the system. Moreover, current techniques often do not consider reuse capabilities and the number of component print jobs that are already on the machine including the logical printer queue. Still further, in the prior art, routing occurs after the print job is queued. Routing print jobs to queues without consideration of reusability at the machine including the queue increases network traffic because the components of the print job that reside on separate machines must be routed to the machine including the selected logical printer queue.
Preferred embodiments provide a method and system for selecting a printer queue, such as a logical printer queue, based on criteria that optimize a desired goal.
For instance, if the first criteria is based on selecting a logical printer queue of minimum depth, then the rule based criteria optimizes load balancing by insuring that queues are not over or under utilized. If the first criteria is based on a reuse factor, then network traffic is minimized because logical printer queues are selected that are implemented in machines that already maintain copies of the print job. In this way, a systems operator or user may select different rule-based criteria to control how print jobs are distributed to different printers or to queues associated with logical printers.